Advances in microprocessor and video related technologies have led to wide spread deployment and adoption of numerous types of video devices. Examples of such video devices include but are not limited to digital camcorders, digital versatile disk (DVD) players, video enabled laptop and desktop computing devices as well as servers, and so forth.
Advances in networking, telecommunication, satellite and other related technologies have also led to increase in on demand and/or real time online delivery of video, including delivery over public networks, such as the Internet.
Whether videos are delivered offline (e.g. from a DVD player) or online (e.g. from a video server), high quality video inherently requires a high volume of data. Thus, video delivery and rendering often involve encoding and decoding to reduce the amount of data to be stored, retrieved and/or transmitted.
Encoding/decoding of a video often involves processing the video as a stream of pictures. Each picture may be a field or a frame (typically consisting of two interleaved fields), and decomposed into a number of macroblocks. Each macroblock is often sub-divided into blocks of various sizes, which are transformed and quantized into a number of samples, luma and/or chroma samples of various types.
A number of encoding/decoding techniques are known in the art. For example, one technique encodes the various parameters of a macroblock using a single variable length coding (VLC) scheme. The technique is simple to practice, however the amount of reduction in data, i.e. compression, is only moderately effective.
Other techniques, such as Context-based Adaptive Binary Arithmetic Coding (CABAC), employ context adaptation and arithmetic coding to improve overall effectiveness. However, techniques such as CABAC are complex, memory demanding, and difficult to practice.
What is needed is a context-adaptive technique that is more effective than conventional non-context-adaptive techniques, but less complex to practice than context-adaptive techniques known to-date.